//package com.yunjijia.config;
//import javax.sql.DataSource;
//
//import com.baomidou.mybatisplus.annotation.DbType;
//import com.baomidou.mybatisplus.annotation.FieldStrategy;
//import com.baomidou.mybatisplus.annotation.IdType;
//import com.baomidou.mybatisplus.core.config.GlobalConfig;
//import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
//import org.apache.ibatis.session.SqlSessionFactory;
//import org.apache.ibatis.type.JdbcType;
//import org.mybatis.spring.SqlSessionTemplate;
//import org.mybatis.spring.annotation.MapperScan;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Qualifier;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
//import org.springframework.jdbc.datasource.DataSourceTransactionManager;
//
//import com.baomidou.mybatisplus.core.MybatisConfiguration;
//import com.baomidou.mybatisplus.core.MybatisXMLLanguageDriver;
//import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
//import com.baomidou.mybatisplus.core.config.GlobalConfig.DbConfig;
//
//
///**
// * @author <a href="zhaojiatao"></a>
// * @version 1.0, 2017/11/24
// * @description
// */
//@Configuration
//// 精确到 mapper 目录，以便跟其他数据源隔离
//@MapperScan(basePackages = "com.yunjijia.mapperOA", sqlSessionFactoryRef = "otherSqlSessionFactory")
//public class MybatisDatasource2Config {
//
//	@Autowired
//	@Qualifier("dataSource2")
//	private DataSource ds;
//
//	@Bean(name ="otherSqlSessionFactory")
//	public SqlSessionFactory otherSqlSessionFactory() throws Exception {
//		MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
//		sqlSessionFactory.setDataSource(ds);
//		MybatisConfiguration configuration = new MybatisConfiguration();
//		configuration.setDefaultScriptingLanguage(MybatisXMLLanguageDriver.class);
//		configuration.setJdbcTypeForNull(JdbcType.NULL);
//		configuration.setCallSettersOnNulls(true);
//		sqlSessionFactory.setConfiguration(configuration);
//
//        sqlSessionFactory.setTypeAliasesPackage("com.yunjijia.pojoOA");
//        GlobalConfig globalConfig = new GlobalConfig();
//        DbConfig dbConfig = new DbConfig();
//        dbConfig.setDbType(DbType.SQL_SERVER);
//        dbConfig.setIdType(IdType.ID_WORKER_STR);
//        dbConfig.setFieldStrategy(FieldStrategy.NOT_EMPTY);
//        dbConfig.setTableUnderline(true);
//        globalConfig.setDbConfig(dbConfig);
//        globalConfig.setWorkerId(1l);
//        globalConfig.setDatacenterId(1l);
//        sqlSessionFactory.setGlobalConfig(globalConfig);
//
//		sqlSessionFactory
//				.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapperOA/*.xml"));
////		sqlSessionFactory.setPlugins(new Interceptor[] {
//////                    new PaginationInterceptor(),//<!-- 分页插件配置 -->
//				new PerformanceInterceptor();// <!-- 性能拦截器，兼打印sql，不建议生产环境配置-->
//////                    new OptimisticLockerInterceptor()//<!-- 乐观锁插件 -->
////		});
//		return sqlSessionFactory.getObject();
//	}
//
//	@Bean
//	public SqlSessionTemplate sqlSessionTemplate2() throws Exception {
//		SqlSessionTemplate template = new SqlSessionTemplate(otherSqlSessionFactory()); // 使用上面配置的Factory
//		return template;
//	}
//
//	// 关于事务管理器，不管是JPA还是JDBC等都实现自接口 PlatformTransactionManager
//	// 如果你添加的是 spring-boot-starter-jdbc 依赖，框架会默认注入 DataSourceTransactionManager 实例。
//	// 在Spring容器中，我们手工注解@Bean 将被优先加载，框架不会重新实例化其他的 PlatformTransactionManager 实现类。
//	@Bean(name = "transactionManager2")
//	public DataSourceTransactionManager masterTransactionManager2() {
//		// MyBatis自动参与到spring事务管理中，无需额外配置，只要org.mybatis.spring.SqlSessionFactoryBean引用的数据源
//		// 与DataSourceTransactionManager引用的数据源一致即可，否则事务管理会不起作用。
//		return new DataSourceTransactionManager(ds);
//	}
//
//}